package someTestExcemple.huaweiOd.slidingWindow;

import java.util.Scanner;

//华为OD机试 - 补种未成活胡杨 - 滑动窗口（Java 2025 A卷 100分）
//https://blog.csdn.net/guorui_java/article/details/131624189
//典型滑动窗口
//ReplantTrees更优秀，可能难以理解
public class ReplantTrees_copy {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 总种植数量
        int N = sc.nextInt();
        // 未成活胡杨数量
        int M = sc.nextInt();

        // 未成活胡杨编号
        boolean[] dead = new boolean[N]; //存活为0
        for (int i = 0; i < M; i++) {
            dead[sc.nextInt() - 1] = true;
        }

        // 最多可以补种的数量
        int K = sc.nextInt();

        int left = 0;
        int max = 0;
        int count = 0; // 记录窗口内未成活的胡杨数量

        for (int right = 0; right < N; right++) {
            if (dead[right]) {
                count++;
            }

            // 当窗口内未成活的胡杨数量超过K时，移动左指针
            while (count > K) {
                if (dead[left]) {
                    count--;
                }
                left++;
            }

            // 更新最大连续胡杨树数量
            max = Math.max(max, right - left + 1);
        }

        System.out.println(max);

    }
}
